#ifndef xpack_lang_cxx_private_lut_utc_date
#define xpack_lang_cxx_private_lut_utc_date
#pragma push_macro("xuser")
#undef  xuser
#define xuser mixc::lang_cxx::inc
#include"define/base_type.hpp"
#include"macro/xexport.hpp"
#include"macro/xforward.hpp"
#include"interface/seqptr.hpp"
#include"utils/static_length_of.hpp"
#include"lang/cxx.hpp"
#include"macro/xmaybe_unused.hpp"
#pragma pop_macro("xuser")

namespace mixc::lang_cxx{
    struct utc_date_t{
        inc::seqptr<inc::c08> weekday;
        inc::seqptr<inc::c08> month;
    };

    xmaybe_unused constexpr inc::c08 the_month[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
    xmaybe_unused constexpr inc::c08 the_weekday[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
    xmaybe_unused constexpr utc_date_t make_utc_date{ 
        .weekday = { the_weekday, inc::static_length_of(the_weekday) },
        .month = { the_month, inc::static_length_of(the_month) }, 
    };
}

namespace mixc::lang_cxx::origin{
    using mixc::lang_cxx::make_utc_date;
}

#endif
